home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swags_z.zip
/
TEXTFILE.SWG
/
0020_Seeking a text file.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-08-27
|
2KB
|
59 lines
{
MARCO MILTENBURG
> One cannot seek in a Text File...
Sure you can... For Dos, TextFiles are Really the same things as Typed
Files, so why don't ask Dos ;-) ? Try this one. F is a TextFile and n is the
File-offset.
}
Procedure tSeek(Var f : Text; n : LongInt); Assembler;
Asm
push DS
push BP
lds SI, f
lodsw { handle }
mov BX, AX
mov CX, Word ptr [BP+8]
mov DX, Word ptr [BP+6]
mov AX, 4200h {AL = 2, AH = 42}
int 21h
les DI, f
mov AX, DI
add AX, 8
mov DI, AX
lodsw { mode }
lodsw { bufsize }
mov CX, AX { CX = number of Bytes to read }
lodsw { private }
lodsw { bufpos }
lodsw { bufend }
lodsw { offset of Pointer to Textbuf }
mov DX, AX { DX = offset of Textbuf }
lodsw
mov DS, AX { DS = segment of Textbuf }
mov AH, 3Fh
int 21h
push AX { Save AX on stack }
les DI, f { ES:DI points to f }
mov AX, DI { Move Pointer to position 8 }
add AX, 8
mov DI, AX
mov AX, 0 { Bufpos = 0 }
stosw
pop AX { Bufend = number of Bytes read }
stosw
pop BP
pop DS
end; { tSeek }